summaryrefslogtreecommitdiffhomepage
path: root/packages/console/app/src/routes/workspace/[id]/usage-section.module.css
diff options
context:
space:
mode:
authorFrank <[email protected]>2025-11-16 03:29:49 -0500
committerFrank <[email protected]>2025-11-16 03:29:52 -0500
commit0e12dd62a3a4af8d00c0d1d5a445f0071bef47ab (patch)
tree0a7aeaa74f8d01dca94450b96bba93fecff22a7b /packages/console/app/src/routes/workspace/[id]/usage-section.module.css
parent2b957b5d1ce45c2413e39869a0ce9f3c81ea80fe (diff)
downloadopencode-0e12dd62a3a4af8d00c0d1d5a445f0071bef47ab.tar.gz
opencode-0e12dd62a3a4af8d00c0d1d5a445f0071bef47ab.zip
zen: usage paging
Diffstat (limited to 'packages/console/app/src/routes/workspace/[id]/usage-section.module.css')
-rw-r--r--packages/console/app/src/routes/workspace/[id]/usage-section.module.css165
1 files changed, 94 insertions, 71 deletions
diff --git a/packages/console/app/src/routes/workspace/[id]/usage-section.module.css b/packages/console/app/src/routes/workspace/[id]/usage-section.module.css
index 1a772ba87..2bd331bd9 100644
--- a/packages/console/app/src/routes/workspace/[id]/usage-section.module.css
+++ b/packages/console/app/src/routes/workspace/[id]/usage-section.module.css
@@ -1,88 +1,111 @@
-.root {
- [data-component="empty-state"] {
- padding: var(--space-20) var(--space-6);
- text-align: center;
- border: 1px dashed var(--color-border);
- border-radius: var(--border-radius-sm);
- display: flex;
- flex-direction: column;
- gap: var(--space-2);
-
- p {
- line-height: 1.5;
- font-size: var(--font-size-sm);
- color: var(--color-text-muted);
+/* Empty state */
+[data-component="empty-state"] {
+ padding: var(--space-20) var(--space-6);
+ text-align: center;
+ border: 1px dashed var(--color-border);
+ border-radius: var(--border-radius-sm);
+
+ p {
+ font-size: var(--font-size-sm);
+ color: var(--color-text-muted);
+ }
+}
+
+/* Table container */
+[data-slot="usage-table"] {
+ overflow-x: auto;
+}
+
+/* Table element */
+[data-slot="usage-table-element"] {
+ width: 100%;
+ border-collapse: collapse;
+ font-size: var(--font-size-sm);
+
+ thead {
+ border-bottom: 1px solid var(--color-border);
+ }
+
+ th {
+ padding: var(--space-3) var(--space-4);
+ text-align: left;
+ font-weight: normal;
+ color: var(--color-text-muted);
+ text-transform: uppercase;
+ }
+
+ td {
+ padding: var(--space-3) var(--space-4);
+ border-bottom: 1px solid var(--color-border-muted);
+ color: var(--color-text-muted);
+ font-family: var(--font-mono);
+
+ &[data-slot="usage-date"] {
+ color: var(--color-text);
+ }
+
+ &[data-slot="usage-model"] {
+ font-family: var(--font-sans);
+ color: var(--color-text-secondary);
+ max-width: 200px;
+ word-break: break-word;
+ }
+
+ &[data-slot="usage-cost"] {
+ color: var(--color-text);
+ font-weight: 500;
}
}
- [data-slot="usage-table"] {
- overflow-x: auto;
+ tbody tr:last-child td {
+ border-bottom: none;
}
+}
- [data-slot="usage-table-element"] {
- width: 100%;
- border-collapse: collapse;
+/* Pagination */
+[data-slot="pagination"] {
+ display: flex;
+ justify-content: flex-end;
+ gap: var(--space-2);
+ padding: var(--space-4) 0;
+ border-top: 1px solid var(--color-border-muted);
+ margin-top: var(--space-2);
+
+ button {
+ padding: var(--space-2) var(--space-4);
+ background: var(--color-bg-secondary);
+ border: 1px solid var(--color-border);
+ border-radius: var(--border-radius-sm);
+ color: var(--color-text);
font-size: var(--font-size-sm);
+ cursor: pointer;
+ transition: all 0.15s ease;
- thead {
- border-bottom: 1px solid var(--color-border);
+ &:hover:not(:disabled) {
+ background: var(--color-bg-tertiary);
+ border-color: var(--color-border-hover);
}
- th {
- padding: var(--space-3) var(--space-4);
- text-align: left;
- font-weight: normal;
- color: var(--color-text-muted);
- text-transform: uppercase;
+ &:disabled {
+ opacity: 0.5;
+ cursor: not-allowed;
}
+ }
+}
+/* Mobile responsive */
+@media (max-width: 40rem) {
+ [data-slot="usage-table-element"] {
+ th,
td {
- padding: var(--space-3) var(--space-4);
- border-bottom: 1px solid var(--color-border-muted);
- color: var(--color-text-muted);
- font-family: var(--font-mono);
-
- &[data-slot="usage-date"] {
- color: var(--color-text);
- }
-
- &[data-slot="usage-model"] {
- font-family: var(--font-sans);
- font-weight: 400;
- color: var(--color-text-secondary);
- max-width: 200px;
- word-break: break-word;
- }
-
- &[data-slot="usage-cost"] {
- color: var(--color-text);
- }
- }
-
- tbody tr {
- &:last-child td {
- border-bottom: none;
- }
+ padding: var(--space-2) var(--space-3);
+ font-size: var(--font-size-xs);
}
- @media (max-width: 40rem) {
- th,
- td {
- padding: var(--space-2) var(--space-3);
- font-size: var(--font-size-xs);
- }
-
- th {
- &:nth-child(2) /* Model */ {
- display: none;
- }
- }
-
- td {
- &:nth-child(2) /* Model */ {
- display: none;
- }
- }
+ /* Hide Model column on mobile */
+ th:nth-child(2),
+ td:nth-child(2) {
+ display: none;
}
}
}